package com.tobby.camel.camelinaction.chapter3.transform;

import java.io.File;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;

public class OrderToCsvBeanTest extends CamelTestSupport {

	@Test
	public void testOrderToCsvBean() throws Exception {
		// this is the inhouse format we want to transfer to CSV
		String inhouse = "0000005555000001144120091209  2319@1108";
		template.sendBodyAndHeader("direct:start", inhouse, "Date", "20160514");

		assertFileExists("target/orders/received/report-20160514.csv");

		// compare the expected file content
		File file = new File("target/orders/received/report-20160514.csv");
		String body = context.getTypeConverter().convertTo(String.class, file);
		assertEquals("000000555,20091209,000001144,2319,1108", body);
	}

	@Override
	public RouteBuilder createRouteBuilder() throws Exception {
		return new RouteBuilder() {
			@Override
			public void configure() throws Exception {
				from("direct:start").bean(new OrderToCsvBean()).to(
						"file://target/orders/received?fileName=report-${header.Date}.csv");
			}
		};
	}

}
